// 引入 Router 构造函数
let Router = require('express')
// 创建 Router 实例
let router = new Router()
// 引入 user 模型
const userModel = require('../model/UserModel')
// 引入加密数据模块
const md5 = require('md5')
// 引入生成 token 值的模块
const jwt = require('jsonwebtoken')

// 创建注册路由
router.post('/login', async (req, res) => {
  let {username, password, email} = req.query
  console.log(username, password)
  // 简单验证数据合法性
  if (username && password || email && password) {
    let result;
    //判断用户是用户名登录还是邮箱登录
    if (username) {
      result = await userModel.findOne({username, password: md5(password)})
    }else if(email) {
      result = await userModel.findOne({email, password: md5(password)})
    }
    if (result) {
      // 生成token
      let token = jwt.sign({
        id: result._id,
        name: result.username
      }, 'myUserToken', {
        expiresIn: '1h'
      })
      // 返回数据
      res.send({
        status: 200,
        msg: '登录成功',
        data: {
          token,
          id: result._id,
          name: result.username
        }
      })
    } else {
      res.send({
        status: 400,
        msg: '尚未注册',
        data: null
      })
    }
  } else {
    res.send({
      status: 400,
      msg: '缺失部分参数',
      data: null
    })
  }

})


// 暴露 router
module.exports = () => {
  return router
}